package BufferedWriterIO;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

/**
 * 文件类字符输出流
 * 区别再也BufferedWriter里面有长度为8192的char[]数组，用来当做缓冲区。
 * 每次写数据的时候，实际上都是在不断的像缓冲区中添加字符
 * 如果缓冲数组满了统一存入硬盘
 * 如果没有写满，就等待下一次的写入
 * 如果最终关闭流的时候，缓存数组没有写满，那么剩余的部分也会写到硬盘文件里面
 * <p>
 * 如何使用？
 * 首先创建一个普通的FileWriter
 * 将这个普通的FileWriter包装成为缓冲区的BufferedWriter，用构造方法
 * 后面和FileWriter一样
 * <p>
 * 构造方法
 * public BufferedWriterIO(FileWriter  fw); 参数就是一个普通的FileWriter对象。
 */
public class BufferedWriterIO {
    public static void main(String[] args) throws IOException {
        FileWriter fw = new FileWriter("file03.txt");
        BufferedWriter bw = new BufferedWriter(fw);
        bw.write("BufferedWriter 8192个往硬盘里面写一次");
        bw.close();
        System.out.println("*************************");
//        提供了自动换行的方法：
//        public void newLine();根据操作系统的不同选择写入\r\n
        FileWriter fw1 = new FileWriter("file04.txt");
        BufferedWriter bw1 = new BufferedWriter(fw1);
        bw1.write("123");
        bw1.newLine();//自动根据操作系统的不同选择换行
        bw1.write("123");
        bw1.close();
    }
}
